package org.dromara.admin.domain.vo;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.admin.domain.HomeHouse;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;



/**
 * 首页房源视图对象 hr_home_house
 *
 * @author Lion Li
 * @date 2025-09-23
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = HomeHouse.class)
public class HomeHouseVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 房源ID
     */
    @ExcelProperty(value = "房源ID")
    private Long id;

    /**
     * 出租方id
     */
    @ExcelProperty(value = "出租方id")
    private Long lessorId;

    /**
     * 业务员id
     */
    @ExcelProperty(value = "业务员id")
    private Long saleId;

    /**
     * 房产证照片路径
     */
    @ExcelProperty(value = "房产证照片路径")
    private String propertyCertPhoto;

    /**
     * 房产号
     */
    @ExcelProperty(value = "房产号")
    private String propertyNumber;

    /**
     * 房屋封面url
     */
    @ExcelProperty(value = "房屋封面url")
    private String houseUrl;

    /**
     * 房屋状态: 待审核,通过,驳回
     */
    @ExcelProperty(value = "房屋状态: 待审核,通过,驳回")
    private String houseStatus;

    /**
     * 是否上架（Y:上架、N:下架）
     */
    @ExcelProperty(value = "是否上架", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "Y=:上架、N:下架")
    private String isLaunch;

    /**
     * 身份证照片路径
     */
    @ExcelProperty(value = "身份证照片路径")
    private String idCardPhoto;

    /**
     * 姓名
     */
    @ExcelProperty(value = "姓名")
    private String ownerName;

    /**
     * 身份证号
     */
    @ExcelProperty(value = "身份证号")
    private String idCardNumber;

    /**
     * 省
     */
    @ExcelProperty(value = "省")
    private String province;

    /**
     * 市
     */
    @ExcelProperty(value = "市")
    private String city;

    /**
     * 租房类型: ENTIRE 整租，APARTMENT 公寓，SHARED 合租
     */
    @ExcelProperty(value = "租房类型: ENTIRE 整租，APARTMENT 公寓，SHARED 合租")
    private String rentalType;

    /**
     * 详细地址
     */
    @ExcelProperty(value = "详细地址")
    private String address;

    /**
     * 楼盘名称
     */
    @ExcelProperty(value = "楼盘名称")
    private String estateName;

    /**
     * 门牌号
     */
    @ExcelProperty(value = "门牌号")
    private String houseNumber;

    /**
     * 楼层
     */
    @ExcelProperty(value = "楼层")
    private Long floor;

    /**
     * 房屋面积
     */
    @ExcelProperty(value = "房屋面积")
    private String houseArea;

    /**
     * 房屋朝向
     */
    @ExcelProperty(value = "房屋朝向")
    private String houseOrientation;

    /**
     * 房屋户型
     */
    @ExcelProperty(value = "房屋户型")
    private Long houseLayoutId;

    /**
     * 电器
     */
    @ExcelProperty(value = "电器")
    private String electricalIds;

    /**
     * 合同开始日期
     */
    @ExcelProperty(value = "合同开始日期")
    private Date contractStartDate;

    /**
     * 合同结束日期
     */
    @ExcelProperty(value = "合同结束日期")
    private Date contractEndDate;

    /**
     * 合同照片路径
     */
    @ExcelProperty(value = "合同照片路径")
    private String contractPhoto;

    /**
     * 合同状态: 待审核,通过,驳回
     */
    @ExcelProperty(value = "合同状态: 待审核,通过,驳回")
    private String contractStatus;

    /**
     * 租金(每期价格)
     */
    @ExcelProperty(value = "租金(每期价格)")
    private BigDecimal rent;


}
